﻿Imports Microsoft.DirectX.DirectPlay
Public Class ObjektHauptmenü
    Inherits ObjektFormMenü


    Dim Text As ObjektText

    Public Sub New()
        MyBase.New(New ObjektButton() {}, Nothing, New ObjektNumericUpDown() {}, Nothing, New ObjektValueSchieber() {}, New ObjektMultiValue() {}, New ObjektCheckBox() {})
        Dim GM As CommanderWarsGameModi = My.Settings.CommanderWarsGameMoodus
        Dim OldT As TerrainStyle = My.Settings.TerrainStyle
        My.Settings.Reload()
        If GM <> My.Settings.CommanderWarsGameMoodus Or OldT <> My.Settings.TerrainStyle Then
            Objektverwalter.LoadNewGameModus(OldT)
        End If
        ObjektMaus.Zustand = ObjektMaus.Zustände.Menü
        If My.Settings.Verhältnis = Hauptmenü.Breitbild Then
            Objektverwalter.LoadHintergrund(My.Settings.Resourcenpfad + "Hintergründe\HM1280a800.bmp")
        Else
            Objektverwalter.LoadHintergrund(My.Settings.Resourcenpfad + "Hintergründe\HM800a600.bmp")
        End If
        Dim Y As Integer = Hauptmenü.MainMenü.MalPanel.Height / 2 - 22 * 4
        If Not My.Settings.LetztesSpiel = "" And My.Computer.FileSystem.FileExists(My.Settings.LetztesSpiel) Then NeuButton(Hauptmenü.MainMenü.MalPanel.Width / 2 - 54, Y, My.Settings.Resourcenpfad + "Objekte\Button.png", "Fortsetzen", New PointF(0.5#, 0.5#))
        Y += 22
        NeuButton(Hauptmenü.MainMenü.MalPanel.Width / 2 - 54, Y, My.Settings.Resourcenpfad + "Objekte\Button.png", "Einzelspieler", New PointF(0.5#, 0.5#))
        Y += 22
        NeuButton(Hauptmenü.MainMenü.MalPanel.Width / 2 - 54, Y, My.Settings.Resourcenpfad + "Objekte\Button.png", "Mehrspieler", New PointF(0.5#, 0.5#))
        Y += 22
        NeuButton(Hauptmenü.MainMenü.MalPanel.Width / 2 - 54, Y, My.Settings.Resourcenpfad + "Objekte\Button.png", "Laden", New PointF(0.5#, 0.5#))
        Y += 22
        NeuButton(Hauptmenü.MainMenü.MalPanel.Width / 2 - 54, Y, My.Settings.Resourcenpfad + "Objekte\Button.png", "Editor", New PointF(0.5#, 0.5#))
        Y += 22
        NeuButton(Hauptmenü.MainMenü.MalPanel.Width / 2 - 54, Y, My.Settings.Resourcenpfad + "Objekte\Button.png", "Aufzeichnung", New PointF(0.5#, 0.5#))
        Y += 22
        NeuButton(Hauptmenü.MainMenü.MalPanel.Width / 2 - 54, Y, My.Settings.Resourcenpfad + "Objekte\Button.png", "Optionen", New PointF(0.5#, 0.5#))
        Y += 22
        NeuButton(Hauptmenü.MainMenü.MalPanel.Width / 2 - 54, Y, My.Settings.Resourcenpfad + "Objekte\Button.png", "Credits", New PointF(0.5#, 0.5#))
        Y += 22
        NeuButton(Hauptmenü.MainMenü.MalPanel.Width / 2 - 54, Y, My.Settings.Resourcenpfad + "Objekte\Button.png", "Beenden", New PointF(0.5#, 0.5#))

        Text = New ObjektText(New String() {"Advance Wars, Advance Wars 2, Advance Wars DS, DC, DoR and all content" + Environment.NewLine() + "contained in those games are copyright" + Environment.NewLine() + "(c) 1990-2005 Nintendo, and 2001-2005 Intelligent Systems." + Environment.NewLine() + "This game was not made with the permission of Nintendo or Intelligent Systems" + Environment.NewLine + "Thanks to Custom Wars for their sprites and Sounds"}, 20, Hauptmenü.MainMenü.MalPanel.Height - 100, Nothing, "Arial", 10, FontStyle.Regular)

        'Das hier war nur so zum Test meiner neuesten Kreationen Gedacht!=)
        'NeuTextFeld(30, 30, 205)
        'NeuDropDownMenü(250, 30, New String() {"Hallo", "Hallo1", "Hallo2", "Hallo3", "Hallo4"})
        'Dim C(Hauptmenü.AlleFarbtabellen.Length - 1) As Color
        'For I = 0 To C.Length - 1
        '    C(I) = Hauptmenü.AlleFarbtabellen(I).GetPixel(7, 0)
        'Next
        'NeuDropDownMenü(250, 60, C)
        'eine evtl. Netzwerkverbindung wieder lösen
        If Hauptmenü.NetzConnected Then
            Dim Begründung As New NetworkPacket
            Begründung.Write("Ich hab keine Lust mehr. Das war's!")
            Hauptmenü.NetzConnection.TerminateSession(Begründung)
            Hauptmenü.NetzConnection.Dispose()
        End If
    End Sub
    Public Overrides Sub KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
        Select Case e.KeyCode
            Case Keys.Escape
                Hauptmenü.MainMenü.Close()
        End Select
    End Sub

    Public Overrides Sub Malen()
        MyBase.ObjekteMalen()
        Schriftengine.DrawText(Text)
    End Sub

    Public Overrides Sub MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        Select Case e.Button
            Case Windows.Forms.MouseButtons.Left
                checkMouseDownObjekte(ObjektMaus.XKoordinate, ObjektMaus.YKoordinate)
        End Select
    End Sub

    Public Overrides Sub MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        MouseMoveObjekte(e.X, e.Y)
    End Sub

    Public Overrides Sub MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        Select Case e.Button
            Case Windows.Forms.MouseButtons.Left
                ButtonGeklicktLinks(checkMouseUPObjekte(ObjektMaus.XKoordinate, ObjektMaus.YKoordinate))
        End Select
    End Sub
    Public Sub ButtonGeklicktLinks(ByVal Effekt As String)
        If Effekt = Nothing Then
            Exit Sub
        End If
        Select Case Effekt.ToLower
            Case "beenden"
                Hauptmenü.MainMenü.Close()
            Case "optionen"
                Hauptmenü.Ini(Hauptmenü.Formmodi.Optionen)
            Case "einzelspieler"
                Hauptmenü.Ini(Hauptmenü.Formmodi.Kartenauswahl)
            Case "editor"
                Hauptmenü.Ini(Hauptmenü.Formmodi.Editor)
            Case "laden"
                SpielstandLaden()
            Case "mehrspieler"
                Hauptmenü.Ini(Hauptmenü.Formmodi.KartenauswahlMP)
            Case "fortsetzen"
                'Eigentlich nur zur Sicherheit, da man auf den Knopf eigentlich nur drücken kann, wann es ein Spiel gibt, welches man Fortsetzen kann. Außerdem darf man die Spracheingabe nicht vergessen ;)

                If Not My.Settings.LetztesSpiel = "" Then
                    If My.Computer.FileSystem.FileExists(My.Settings.LetztesSpiel) Then
                        Hauptmenü.Pause = True

                        ObjektLadebildschirm.Ladebildschirm = New ObjektLadebildschirm(3, "", My.Settings.LetztesSpiel, False, ".sav", True, False)

                        Hauptmenü.Ini(Hauptmenü.Formmodi.Spiel, True, True)
                    End If
                End If
            Case "credits"
                Hauptmenü.Ini(Hauptmenü.Formmodi.Credits)
            Case "aufzeichnung"
                AufzeichnungAuswählen()
        End Select
    End Sub

    Public Overrides Sub SetMausBild()

    End Sub

    Public Overrides Sub Frame()

    End Sub

    Public Overrides Sub MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)

    End Sub

    Public Overrides Sub IniMenü()

    End Sub

    Public Sub SpielstandLaden()
        Hauptmenü.MainMenü.KarteLaden.InitialDirectory = My.Settings.Resourcenpfad + "Spielstände\"
        Hauptmenü.MainMenü.KarteLaden.FileName = ""
        Hauptmenü.MainMenü.KarteLaden.Filter = "Commander Wars " + Sprachconverter.Translate("Spielstände") + "|*.sav"
        Hauptmenü.MainMenü.KarteLaden.Title = Sprachconverter.Translate("Spielstand") + " " + Sprachconverter.Translate("Laden")
        Cursor.Show()
        If Hauptmenü.MainMenü.KarteLaden.ShowDialog() = DialogResult.OK Then
            If Hauptmenü.MainMenü.KarteLaden.CheckFileExists Then
                Dim Name As String = Hauptmenü.MainMenü.KarteLaden.FileName
                Dim Endung As String = "map"
                If Name.LastIndexOf("\") >= 0 Then
                    Hauptmenü.Pause = True

                    If Name.LastIndexOf(".") >= 0 Then
                        ObjektLadebildschirm.Ladebildschirm = New ObjektLadebildschirm(3, "", Name, True, ".map", True, False)
                    Else
                        ObjektLadebildschirm.Ladebildschirm = New ObjektLadebildschirm(3, "", Name, True, ".sav", True, False)
                    End If
                    Hauptmenü.Ini(Hauptmenü.Formmodi.Spiel, True, True)
                Else

                    Hauptmenü.Pause = True
                    ObjektLadebildschirm.Ladebildschirm = New ObjektLadebildschirm(3, "", Name, False, ".sav", True, False)

                    Hauptmenü.Ini(Hauptmenü.Formmodi.Spiel, True, True)
                End If
            End If
        End If
        Cursor.Hide()
    End Sub

    Public Overrides Sub SprachEingabe(ByVal Eingabe As String)
        ButtonGeklicktLinks(Eingabe.ToLower)
    End Sub

    Public Overrides Sub ChangeWindowSize(ByVal PosChange As System.Drawing.Point)
        MyBase.ChangeWindowSizeObjekte(PosChange)
        Text.neuerText(Text.Text, Text.XStart, Text.YStart + PosChange.Y * 1, Nothing)
    End Sub

    Public Sub AufzeichnungAuswählen()
        Hauptmenü.MainMenü.KarteLaden.InitialDirectory = My.Settings.Resourcenpfad + "Record\"
        Hauptmenü.MainMenü.KarteLaden.FileName = ""
        Hauptmenü.MainMenü.KarteLaden.Filter = "Commander Wars" + Sprachconverter.Translate("Aufzeichnung") + "|*.rpl"
        Hauptmenü.MainMenü.KarteLaden.Title = Sprachconverter.Translate("Aufzeichnung") + " " + Sprachconverter.Translate("Laden")
        Cursor.Show()
        If Hauptmenü.MainMenü.KarteLaden.ShowDialog() = DialogResult.OK Then
            If Hauptmenü.MainMenü.KarteLaden.CheckFileExists Then
                Hauptmenü.AufzeichnungAbspielenStart(Hauptmenü.MainMenü.KarteLaden.FileName)
            End If
        End If
        Cursor.Hide()
    End Sub
End Class
